Large computer systems can rely on many processors to run many processes or threads simultaneously. Each job typically runs on one given processor, with several processes or threads running in sequence. In general, the overall system throughput should be as high as possible without too much sacrifice of individual process or thread response-time and throughput.
Large systems that do web indices searching, online transaction processing, etc., can experience wide variations in the number of processes or threads they must run at any one time.
Chip-level multiprocessors have recently started to be marketed that integrate several identical processors on one chip. It has not been clear just how complex the replicated processor should be. For many applications, the more complex the processor, the higher will be the performance. But performance from complexity comes at a price, the marginal die area increase required for a complex processor over a simple processor is much greater than the resulting performance benefit. For example, if the complexity of a processor is increased so that its chip area is quadrupled, its performance may be only doubled. An increase in complexity may be of little or no benefit for certain software jobs, e.g., transaction processing workloads. These jobs were found to do almost as well on simple cores as compared to complex cores.